create database OrderIno
go

use OrderIno
go

create table orders
(
	orderID int primary key identity(1,1),
	orderDate datetime
)

create table orderltem
(
	ltemID int identity(1,1),
	orderID int ,
	itemType nvarchar(15),
	itemName nvarchar(10),
	theNumber int ,
	theMoney money
)

insert into orders (orderDate) values
('2008-01-12 00:00:00.000'),
('2008-02-10 00:00:00.000'),
('2008-02-15 00:00:00.000'),
('2008-03-10 00:00:00.000')

insert into orderltem values
(1,'文具','笔',72,2),
(1,'文具','尺',10,1),
(1,'体育用品','篮球',1,56),
(2,'文具','笔',36,2),
(2,'文具','固体胶',20,3),
(2,'生活用品','透明胶',2,1),
(2,'体育用品','羽毛球',20,3),
(3,'文具','订书机',20,3),
(3,'文具','订书机',10,3),
(3,'文具','裁纸刀',5,5),
(4,'文具','笔',20,2),
(4,'文具','信纸',50,1),
(4,'生活用品','毛巾',4,5),
(4,'生活用品','透明胶',30,1),
(4,'体育用品','羽毛球',20,3)


--使用上次作业的订单数据库，完成下列题目：

select * from orders --订单表
select * from orderltem  --订购项目表

--订单表（orders）列为：订单编号（orderID 主键）  订购日期（orderDate）--订购项目表（orderItem），列为：--项目编号（ItemID）订单编号（orderID）产品类别（itemType）--产品名称（itemName） 订购数量（theNumber）  订购单价（theMoney）
--1.查询所有的订单的订单的编号，订单日期，订购产品的类别和订购的产品名称，订购数量和订购单价
select orders.orderID 订单的编号 ,orderDate 订单日期, itemType 订购产品的类别,itemName 订购的产品名称 from orders
inner join orderltem on orders.orderID =orderltem.orderID

--2.查询订购数量大于50的订单的编号，订单日期，订购产品的类别和订购的产品名称
select orders.orderID 订单的编号 ,orderDate 订单日期, itemType 订购产品的类别,itemName 订购的产品名称 from orders
inner join orderltem on orders.orderID =orderltem.orderID where orderltem.theNumber >50


--3.查询所有的订单的订单的编号，订单日期，订购产品的类别和订购的产品名称，订购数量和订购单价以及订购总价
select orders.orderID 订单的编号 ,orderDate 订单日期, itemType 订购产品的类别,itemName 订购的产品名称, theNumber 订购数量 ,theMoney 订购单价 , theNumber*theMoney 订购总价 from orders
inner join orderltem on orders.orderID =orderltem.orderID 


--4.查询单价大于等于5并且数量大于等于50的订单的订单的编号，订单日期，订购产品的类别和订购的产品名称，订购数量和订购单价以及订购总价
select orders.orderID 订单的编号 ,orderDate 订单日期, itemType 订购产品的类别,itemName 订购的产品名称, theNumber 订购数量 ,theMoney 订购单价 , theNumber*theMoney 订购总价 from orders
inner join orderltem on orders.orderID =orderltem.orderID  where  orderltem.theMoney>=5 and orderltem.theNumber>=50


--5.查询每个订单分别订购了几个产品，例如：
--			编号   订购产品数
--           1           3
--           2           4
select orderID 订单的编号 , count(*)订购产品数 from orderltem group by orderID


--6.查询每个订单里的每个类别的产品分别订购了几次和总数量，例如：
-- 订单编号       产品类别     订购次数     总数量
--    1           文具            	2           82
--    1           体育用品        	1            1
--    2           文具            	2           56
--    2           体育用品        	1            2
--    2           日常用品        	1            20

select orderID 订单的编号 , itemType 产品类别 ,count(*)订购次数 , sum(theNumber) 总数量
	from orderltem group by orderID,itemType order by orderID 